/* Copyright 2018 JDCLOUD.COM

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http:#www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

网段
网段相关接口

OpenAPI spec version: v1
Contact: 

NOTE: This class is auto generated by the jdcloud code generator program.
*/


#ifndef VpcApiModel_h
#define VpcApiModel_h
#import <JDCloudOCSDKCore/JDCloudOCSDKCore.h>
#import <JDCloudOCSDKCommon/JDCloudOCSDKCommon.h>
#import <JDCloudOCSDKVpc/VpcModel.h>


@interface VpcDeleteRouteTableRequest:JDCloudRequest

/// RouteTable ID
@property (strong,nonatomic,nonnull)  NSString*  routeTableId;
-(id) initWithRegion:(NSString *)regionId
routeTableId:(NSString*)routeTableId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
routeTableId:(NSString*)routeTableId;

@end

@interface VpcRemoveRouteTableRulesRequest:JDCloudRequest

/// 路由表规则Id列表
@property (strong,nonatomic,nonnull)  NSArray<NSString*>*  ruleIds;
/// RouteTable ID
@property (strong,nonatomic,nonnull)  NSString*  routeTableId;
-(id) initWithRegion:(NSString *)regionId
ruleIds:(NSArray<NSString*>*)ruleIds
routeTableId:(NSString*)routeTableId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
ruleIds:(NSArray<NSString*>*)ruleIds
routeTableId:(NSString*)routeTableId;

@end

@interface VpcModifyRouteTableRequest:JDCloudRequest

/// 路由表的名字。名称取值范围：1-32个中文、英文大小写的字母、数字和下划线分隔符
@property (strong,nonatomic,nonnull)  NSString*  routeTableName;
/// 路由表的描述，取值范围：0-256个UTF-8编码下的全部字符
@property (strong,nonatomic,nonnull)  NSString*  descriptionValue;
/// RouteTable ID
@property (strong,nonatomic,nonnull)  NSString*  routeTableId;
-(id) initWithRegion:(NSString *)regionId
routeTableName:(NSString*)routeTableName
descriptionValue:(NSString*)descriptionValue
routeTableId:(NSString*)routeTableId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
routeTableName:(NSString*)routeTableName
descriptionValue:(NSString*)descriptionValue
routeTableId:(NSString*)routeTableId;

@end

@interface VpcCreateRouteTableRequest:JDCloudRequest

/// 路由表所属的私有网络ID
@property (strong,nonatomic,nonnull)  NSString*  vpcId;
/// 路由表名称，只允许输入中文、数字、大小写字母、英文下划线“_”及中划线“-”，不允许为空且不超过32字符。
@property (strong,nonatomic,nonnull)  NSString*  routeTableName;
/// 描述,​ 允许输入UTF-8编码下的全部字符，不超过256字符
@property (strong,nonatomic,nonnull)  NSString*  descriptionValue;
-(id) initWithRegion:(NSString *)regionId
vpcId:(NSString*)vpcId
routeTableName:(NSString*)routeTableName
descriptionValue:(NSString*)descriptionValue;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
vpcId:(NSString*)vpcId
routeTableName:(NSString*)routeTableName
descriptionValue:(NSString*)descriptionValue;

@end

@interface VpcAssociateRouteTableRequest:JDCloudRequest

/// 路由表要绑定的子网ID列表, subnet已被其他路由表绑定时，自动解绑。
@property (strong,nonatomic,nonnull)  NSArray<NSString*>*  subnetIds;
/// RouteTable ID
@property (strong,nonatomic,nonnull)  NSString*  routeTableId;
-(id) initWithRegion:(NSString *)regionId
subnetIds:(NSArray<NSString*>*)subnetIds
routeTableId:(NSString*)routeTableId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
subnetIds:(NSArray<NSString*>*)subnetIds
routeTableId:(NSString*)routeTableId;

@end

@interface VpcDescribeRouteTableRequest:JDCloudRequest

/// RouteTable ID
@property (strong,nonatomic,nonnull)  NSString*  routeTableId;
-(id) initWithRegion:(NSString *)regionId
routeTableId:(NSString*)routeTableId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
routeTableId:(NSString*)routeTableId;

@end

@interface VpcCreateRouteTableResult : NSObject
/// 路由表ID
 @property (strong,nonatomic,nonnull)  NSString*  routeTableId;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithRouteTableId:(NSString*) routeTableId;
@end

@interface VpcDisassociateRouteTableRequest:JDCloudRequest

/// 路由表要解绑的子网ID，解绑后子网绑定默认路由表
@property (strong,nonatomic,nonnull)  NSString*  subnetId;
/// RouteTable ID
@property (strong,nonatomic,nonnull)  NSString*  routeTableId;
-(id) initWithRegion:(NSString *)regionId
subnetId:(NSString*)subnetId
routeTableId:(NSString*)routeTableId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
subnetId:(NSString*)subnetId
routeTableId:(NSString*)routeTableId;

@end

@interface VpcDescribeQuotaRequest:JDCloudRequest

/// 资源类型，取值范围：vpc、elastic_ip、subnet、security_group、vpcpeering、network_interface（配额只统计辅助网卡）
@property (strong,nonatomic,nonnull)  NSString*  type;
/// type为vpc、elastic_ip、network_interface不设置, type为subnet、security_group、vpcpeering设置为vpcId
@property (strong,nonatomic,nonnull)  NSString*  parentResourceId;
-(id) initWithRegion:(NSString *)regionId
type:(NSString*)type
parentResourceId:(NSString*)parentResourceId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
type:(NSString*)type
parentResourceId:(NSString*)parentResourceId;

@end

@interface VpcDescribeQuotaResult : NSObject
/// Quota
 @property (strong,nonatomic,nonnull)  NSObject*  quota;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithQuota:(NSObject*) quota;
@end

@interface VpcCreateNetworkInterfaceResult : NSObject
/// 弹性网卡Id
 @property (strong,nonatomic,nonnull)  NSString*  networkInterfaceId;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithNetworkInterfaceId:(NSString*) networkInterfaceId;
@end

@interface VpcAssignSecondaryIpsRequest:JDCloudRequest

/// secondary ip被其他接口占用时，是否抢占。false：非抢占重分配，true：抢占重分配，默认抢占重分配。默认值：true
@property (strong,nonatomic,nonnull)  NSNumber*  force;
/// 指定分配的secondaryIp地址
@property (strong,nonatomic,nonnull)  NSArray<NSString*>*  secondaryIps;
/// 指定自动分配的secondaryIp个数
@property (strong,nonatomic,nonnull)  NSNumber*  secondaryIpCount;
/// networkInterface ID
@property (strong,nonatomic,nonnull)  NSString*  networkInterfaceId;
-(id) initWithRegion:(NSString *)regionId
force:(NSNumber*)force
secondaryIps:(NSArray<NSString*>*)secondaryIps
secondaryIpCount:(NSNumber*)secondaryIpCount
networkInterfaceId:(NSString*)networkInterfaceId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
force:(NSNumber*)force
secondaryIps:(NSArray<NSString*>*)secondaryIps
secondaryIpCount:(NSNumber*)secondaryIpCount
networkInterfaceId:(NSString*)networkInterfaceId;

@end

@interface VpcDeleteNetworkInterfaceRequest:JDCloudRequest

/// networkInterface ID
@property (strong,nonatomic,nonnull)  NSString*  networkInterfaceId;
-(id) initWithRegion:(NSString *)regionId
networkInterfaceId:(NSString*)networkInterfaceId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
networkInterfaceId:(NSString*)networkInterfaceId;

@end

@interface VpcCreateNetworkInterfaceRequest:JDCloudRequest

/// 子网ID
@property (strong,nonatomic,nonnull)  NSString*  subnetId;
/// 可用区，用户的默认可用区
@property (strong,nonatomic,nonnull)  NSString*  az;
/// 网卡名称，只允许输入中文、数字、大小写字母、英文下划线“_”及中划线“-”，不允许为空且不超过32字符。
@property (strong,nonatomic,nonnull)  NSString*  networkInterfaceName;
/// 网卡主IP，如果不指定，会自动从子网中分配
@property (strong,nonatomic,nonnull)  NSString*  primaryIpAddress;
/// SecondaryIp列表
@property (strong,nonatomic,nonnull)  NSArray<NSString*>*  secondaryIpAddresses;
/// 自动分配的SecondaryIp数量
@property (strong,nonatomic,nonnull)  NSNumber*  secondaryIpCount;
/// 要绑定的安全组ID列表，最多指定5个安全组
@property (strong,nonatomic,nonnull)  NSArray<NSString*>*  securityGroups;
/// 源和目标IP地址校验，取值为0或者1,默认为1
@property (strong,nonatomic,nonnull)  NSNumber*  sanityCheck;
/// 描述,​ 允许输入UTF-8编码下的全部字符，不超过256字符
@property (strong,nonatomic,nonnull)  NSString*  descriptionValue;
-(id) initWithRegion:(NSString *)regionId
subnetId:(NSString*)subnetId
az:(NSString*)az
networkInterfaceName:(NSString*)networkInterfaceName
primaryIpAddress:(NSString*)primaryIpAddress
secondaryIpAddresses:(NSArray<NSString*>*)secondaryIpAddresses
secondaryIpCount:(NSNumber*)secondaryIpCount
securityGroups:(NSArray<NSString*>*)securityGroups
sanityCheck:(NSNumber*)sanityCheck
descriptionValue:(NSString*)descriptionValue;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
subnetId:(NSString*)subnetId
az:(NSString*)az
networkInterfaceName:(NSString*)networkInterfaceName
primaryIpAddress:(NSString*)primaryIpAddress
secondaryIpAddresses:(NSArray<NSString*>*)secondaryIpAddresses
secondaryIpCount:(NSNumber*)secondaryIpCount
securityGroups:(NSArray<NSString*>*)securityGroups
sanityCheck:(NSNumber*)sanityCheck
descriptionValue:(NSString*)descriptionValue;

@end

@interface VpcAssociateElasticIpRequest:JDCloudRequest

/// 绑定的弹性Ip Id
@property (strong,nonatomic,nonnull)  NSString*  elasticIpId;
/// 绑定弹性Ip到指定的privateIp
@property (strong,nonatomic,nonnull)  NSString*  privateIpAddress;
/// 绑定的弹性Ip地址
@property (strong,nonatomic,nonnull)  NSString*  elasticIpAddress;
/// networkInterface ID
@property (strong,nonatomic,nonnull)  NSString*  networkInterfaceId;
-(id) initWithRegion:(NSString *)regionId
elasticIpId:(NSString*)elasticIpId
privateIpAddress:(NSString*)privateIpAddress
elasticIpAddress:(NSString*)elasticIpAddress
networkInterfaceId:(NSString*)networkInterfaceId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
elasticIpId:(NSString*)elasticIpId
privateIpAddress:(NSString*)privateIpAddress
elasticIpAddress:(NSString*)elasticIpAddress
networkInterfaceId:(NSString*)networkInterfaceId;

@end

@interface VpcDisassociateElasticIpRequest:JDCloudRequest

/// 指定解绑的弹性Ip Id
@property (strong,nonatomic,nonnull)  NSString*  elasticIpId;
/// 指定解绑的弹性Ip地址
@property (strong,nonatomic,nonnull)  NSString*  elasticIpAddress;
/// networkInterface ID
@property (strong,nonatomic,nonnull)  NSString*  networkInterfaceId;
-(id) initWithRegion:(NSString *)regionId
elasticIpId:(NSString*)elasticIpId
elasticIpAddress:(NSString*)elasticIpAddress
networkInterfaceId:(NSString*)networkInterfaceId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
elasticIpId:(NSString*)elasticIpId
elasticIpAddress:(NSString*)elasticIpAddress
networkInterfaceId:(NSString*)networkInterfaceId;

@end

@interface VpcUnassignSecondaryIpsRequest:JDCloudRequest

/// 指定删除的secondaryIp地址
@property (strong,nonatomic,nonnull)  NSArray<NSString*>*  secondaryIps;
/// networkInterface ID
@property (strong,nonatomic,nonnull)  NSString*  networkInterfaceId;
-(id) initWithRegion:(NSString *)regionId
secondaryIps:(NSArray<NSString*>*)secondaryIps
networkInterfaceId:(NSString*)networkInterfaceId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
secondaryIps:(NSArray<NSString*>*)secondaryIps
networkInterfaceId:(NSString*)networkInterfaceId;

@end

@interface VpcDescribeNetworkInterfaceRequest:JDCloudRequest

/// networkInterface ID
@property (strong,nonatomic,nonnull)  NSString*  networkInterfaceId;
-(id) initWithRegion:(NSString *)regionId
networkInterfaceId:(NSString*)networkInterfaceId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
networkInterfaceId:(NSString*)networkInterfaceId;

@end

@interface VpcModifyNetworkInterfaceRequest:JDCloudRequest

/// 弹性网卡名称,只允许输入中文、数字、大小写字母、英文下划线“_”及中划线“-”，不允许为空且不超过32字符
@property (strong,nonatomic,nonnull)  NSString*  networkInterfaceName;
/// 描述,允许输入UTF-8编码下的全部字符，不超过256字符
@property (strong,nonatomic,nonnull)  NSString*  descriptionValue;
/// 以覆盖原有安全组的方式更新的安全组。如果更新安全组ID列表，最多5个安全组
@property (strong,nonatomic,nonnull)  NSArray<NSString*>*  securityGroups;
/// networkInterface ID
@property (strong,nonatomic,nonnull)  NSString*  networkInterfaceId;
-(id) initWithRegion:(NSString *)regionId
networkInterfaceName:(NSString*)networkInterfaceName
descriptionValue:(NSString*)descriptionValue
securityGroups:(NSArray<NSString*>*)securityGroups
networkInterfaceId:(NSString*)networkInterfaceId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
networkInterfaceName:(NSString*)networkInterfaceName
descriptionValue:(NSString*)descriptionValue
securityGroups:(NSArray<NSString*>*)securityGroups
networkInterfaceId:(NSString*)networkInterfaceId;

@end

@interface VpcDescribeSubnetRequest:JDCloudRequest

/// Subnet ID
@property (strong,nonatomic,nonnull)  NSString*  subnetId;
-(id) initWithRegion:(NSString *)regionId
subnetId:(NSString*)subnetId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
subnetId:(NSString*)subnetId;

@end

@interface VpcCreateSubnetResult : NSObject
/// 子网ID
 @property (strong,nonatomic,nonnull)  NSString*  subnetId;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithSubnetId:(NSString*) subnetId;
@end

@interface VpcDeleteSubnetRequest:JDCloudRequest

/// Subnet ID
@property (strong,nonatomic,nonnull)  NSString*  subnetId;
-(id) initWithRegion:(NSString *)regionId
subnetId:(NSString*)subnetId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
subnetId:(NSString*)subnetId;

@end

@interface VpcCreateSubnetRequest:JDCloudRequest

/// 子网所属vpc的Id
@property (strong,nonatomic,nonnull)  NSString*  vpcId;
/// 子网名称,只允许输入中文、数字、大小写字母、英文下划线“_”及中划线“-”，不允许为空且不超过32字符。
@property (strong,nonatomic,nonnull)  NSString*  subnetName;
/// 子网网段，vpc内子网网段不能重叠，cidr的取值范围：10.0.0.0/8、172.16.0.0/12和192.168.0.0/16及它们包含的子网，且子网掩码长度为16-28之间，如果vpc含有cidr，则必须为vpc所在cidr的子网
@property (strong,nonatomic,nonnull)  NSString*  addressPrefix;
/// 子网关联的路由表Id, 默认为vpc的默认路由表
@property (strong,nonatomic,nonnull)  NSString*  routeTableId;
/// 子网描述信息,允许输入UTF-8编码下的全部字符，不超过256字符。
@property (strong,nonatomic,nonnull)  NSString*  descriptionValue;
-(id) initWithRegion:(NSString *)regionId
vpcId:(NSString*)vpcId
subnetName:(NSString*)subnetName
addressPrefix:(NSString*)addressPrefix
routeTableId:(NSString*)routeTableId
descriptionValue:(NSString*)descriptionValue;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
vpcId:(NSString*)vpcId
subnetName:(NSString*)subnetName
addressPrefix:(NSString*)addressPrefix
routeTableId:(NSString*)routeTableId
descriptionValue:(NSString*)descriptionValue;

@end

@interface VpcModifySubnetRequest:JDCloudRequest

/// 子网名称,只允许输入中文、数字、大小写字母、英文下划线“_”及中划线“-”，不允许为空且不超过32字符。
@property (strong,nonatomic,nonnull)  NSString*  subnetName;
/// 子网描述信息，允许输入UTF-8编码下的全部字符，不超过256字符。
@property (strong,nonatomic,nonnull)  NSString*  descriptionValue;
/// Subnet ID
@property (strong,nonatomic,nonnull)  NSString*  subnetId;
-(id) initWithRegion:(NSString *)regionId
subnetName:(NSString*)subnetName
descriptionValue:(NSString*)descriptionValue
subnetId:(NSString*)subnetId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
subnetName:(NSString*)subnetName
descriptionValue:(NSString*)descriptionValue
subnetId:(NSString*)subnetId;

@end

@interface VpcRemoveNetworkSecurityGroupRulesRequest:JDCloudRequest

/// 安全组规则Id列表
@property (strong,nonatomic,nonnull)  NSArray<NSString*>*  ruleIds;
/// NetworkSecurityGroup ID
@property (strong,nonatomic,nonnull)  NSString*  networkSecurityGroupId;
-(id) initWithRegion:(NSString *)regionId
ruleIds:(NSArray<NSString*>*)ruleIds
networkSecurityGroupId:(NSString*)networkSecurityGroupId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
ruleIds:(NSArray<NSString*>*)ruleIds
networkSecurityGroupId:(NSString*)networkSecurityGroupId;

@end

@interface VpcDeleteNetworkSecurityGroupRequest:JDCloudRequest

/// NetworkSecurityGroup ID
@property (strong,nonatomic,nonnull)  NSString*  networkSecurityGroupId;
-(id) initWithRegion:(NSString *)regionId
networkSecurityGroupId:(NSString*)networkSecurityGroupId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
networkSecurityGroupId:(NSString*)networkSecurityGroupId;

@end

@interface VpcCreateNetworkSecurityGroupRequest:JDCloudRequest

/// 私有网络ID
@property (strong,nonatomic,nonnull)  NSString*  vpcId;
/// 安全组名称，只允许输入中文、数字、大小写字母、英文下划线“_”及中划线“-”，不允许为空且不超过32字符。
@property (strong,nonatomic,nonnull)  NSString*  networkSecurityGroupName;
/// 描述,​ 允许输入UTF-8编码下的全部字符，不超过256字符
@property (strong,nonatomic,nonnull)  NSString*  descriptionValue;
-(id) initWithRegion:(NSString *)regionId
vpcId:(NSString*)vpcId
networkSecurityGroupName:(NSString*)networkSecurityGroupName
descriptionValue:(NSString*)descriptionValue;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
vpcId:(NSString*)vpcId
networkSecurityGroupName:(NSString*)networkSecurityGroupName
descriptionValue:(NSString*)descriptionValue;

@end

@interface VpcCreateNetworkSecurityGroupResult : NSObject
/// 安全组ID
 @property (strong,nonatomic,nonnull)  NSString*  networkSecurityGroupId;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithNetworkSecurityGroupId:(NSString*) networkSecurityGroupId;
@end

@interface VpcDescribeNetworkSecurityGroupRequest:JDCloudRequest

/// NetworkSecurityGroup ID
@property (strong,nonatomic,nonnull)  NSString*  networkSecurityGroupId;
-(id) initWithRegion:(NSString *)regionId
networkSecurityGroupId:(NSString*)networkSecurityGroupId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
networkSecurityGroupId:(NSString*)networkSecurityGroupId;

@end

@interface VpcModifyNetworkSecurityGroupRequest:JDCloudRequest

/// 安全组的名字。名称取值范围：1-32个中文、英文大小写的字母、数字和下划线分隔符
@property (strong,nonatomic,nonnull)  NSString*  networkSecurityGroupName;
/// 安全组的描述，取值范围：0-256个UTF-8编码下的全部字符
@property (strong,nonatomic,nonnull)  NSString*  descriptionValue;
/// NetworkSecurityGroup ID
@property (strong,nonatomic,nonnull)  NSString*  networkSecurityGroupId;
-(id) initWithRegion:(NSString *)regionId
networkSecurityGroupName:(NSString*)networkSecurityGroupName
descriptionValue:(NSString*)descriptionValue
networkSecurityGroupId:(NSString*)networkSecurityGroupId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
networkSecurityGroupName:(NSString*)networkSecurityGroupName
descriptionValue:(NSString*)descriptionValue
networkSecurityGroupId:(NSString*)networkSecurityGroupId;

@end

@interface VpcDescribeNetworkAclRequest:JDCloudRequest

/// networkAclId ID
@property (strong,nonatomic,nonnull)  NSString*  networkAclId;
-(id) initWithRegion:(NSString *)regionId
networkAclId:(NSString*)networkAclId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
networkAclId:(NSString*)networkAclId;

@end

@interface VpcCreateNetworkAclResult : NSObject
/// networkAcl ID
 @property (strong,nonatomic,nonnull)  NSString*  networkAclId;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithNetworkAclId:(NSString*) networkAclId;
@end

@interface VpcDisassociateNetworkAclRequest:JDCloudRequest

/// networkAcl要解绑的子网ID
@property (strong,nonatomic,nonnull)  NSString*  subnetId;
/// networkAclId ID
@property (strong,nonatomic,nonnull)  NSString*  networkAclId;
-(id) initWithRegion:(NSString *)regionId
subnetId:(NSString*)subnetId
networkAclId:(NSString*)networkAclId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
subnetId:(NSString*)subnetId
networkAclId:(NSString*)networkAclId;

@end

@interface VpcCreateNetworkAclRequest:JDCloudRequest

/// 私有网络id
@property (strong,nonatomic,nonnull)  NSString*  vpcId;
/// networkAcl名称
@property (strong,nonatomic,nonnull)  NSString*  networkAclName;
/// 描述,允许输入UTF-8编码下的全部字符，不超过256字符
@property (strong,nonatomic,nonnull)  NSString*  descriptionValue;
-(id) initWithRegion:(NSString *)regionId
vpcId:(NSString*)vpcId
networkAclName:(NSString*)networkAclName
descriptionValue:(NSString*)descriptionValue;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
vpcId:(NSString*)vpcId
networkAclName:(NSString*)networkAclName
descriptionValue:(NSString*)descriptionValue;

@end

@interface VpcRemoveNetworkAclRulesRequest:JDCloudRequest

/// networkAcl规则ID列表
@property (strong,nonatomic,nonnull)  NSArray<NSString*>*  ruleIds;
/// networkAclId ID
@property (strong,nonatomic,nonnull)  NSString*  networkAclId;
-(id) initWithRegion:(NSString *)regionId
ruleIds:(NSArray<NSString*>*)ruleIds
networkAclId:(NSString*)networkAclId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
ruleIds:(NSArray<NSString*>*)ruleIds
networkAclId:(NSString*)networkAclId;

@end

@interface VpcModifyNetworkAclRequest:JDCloudRequest

/// networkAcl名称,只允许输入中文、数字、大小写字母、英文下划线“_”及中划线“-”，不允许为空且不超过32字符
@property (strong,nonatomic,nonnull)  NSString*  networkAclName;
/// 描述,允许输入UTF-8编码下的全部字符，不超过256字符
@property (strong,nonatomic,nonnull)  NSString*  descriptionValue;
/// networkAclId ID
@property (strong,nonatomic,nonnull)  NSString*  networkAclId;
-(id) initWithRegion:(NSString *)regionId
networkAclName:(NSString*)networkAclName
descriptionValue:(NSString*)descriptionValue
networkAclId:(NSString*)networkAclId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
networkAclName:(NSString*)networkAclName
descriptionValue:(NSString*)descriptionValue
networkAclId:(NSString*)networkAclId;

@end

@interface VpcDeleteNetworkAclRequest:JDCloudRequest

/// networkAclId ID
@property (strong,nonatomic,nonnull)  NSString*  networkAclId;
-(id) initWithRegion:(NSString *)regionId
networkAclId:(NSString*)networkAclId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
networkAclId:(NSString*)networkAclId;

@end

@interface VpcAssociateNetworkAclRequest:JDCloudRequest

/// networkAcl要绑定的子网ID列表, subnet已被其他networkAcl绑定时，自动解绑
@property (strong,nonatomic,nonnull)  NSArray<NSString*>*  subnetIds;
/// networkAclId ID
@property (strong,nonatomic,nonnull)  NSString*  networkAclId;
-(id) initWithRegion:(NSString *)regionId
subnetIds:(NSArray<NSString*>*)subnetIds
networkAclId:(NSString*)networkAclId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
subnetIds:(NSArray<NSString*>*)subnetIds
networkAclId:(NSString*)networkAclId;

@end

@interface VpcDescribeElasticIpRequest:JDCloudRequest

/// ElasticIp ID
@property (strong,nonatomic,nonnull)  NSString*  elasticIpId;
-(id) initWithRegion:(NSString *)regionId
elasticIpId:(NSString*)elasticIpId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
elasticIpId:(NSString*)elasticIpId;

@end

@interface VpcDeleteElasticIpRequest:JDCloudRequest

/// ElasticIp ID
@property (strong,nonatomic,nonnull)  NSString*  elasticIpId;
-(id) initWithRegion:(NSString *)regionId
elasticIpId:(NSString*)elasticIpId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
elasticIpId:(NSString*)elasticIpId;

@end

@interface VpcModifyElasticIpRequest:JDCloudRequest

/// 弹性公网IP的限速（单位：Mbps），取值范围为[1-200]
@property (strong,nonatomic,nonnull)  NSNumber*  bandwidthMbps;
/// ElasticIp ID
@property (strong,nonatomic,nonnull)  NSString*  elasticIpId;
-(id) initWithRegion:(NSString *)regionId
bandwidthMbps:(NSNumber*)bandwidthMbps
elasticIpId:(NSString*)elasticIpId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
bandwidthMbps:(NSNumber*)bandwidthMbps
elasticIpId:(NSString*)elasticIpId;

@end

@interface VpcCreateElasticIpsResult : NSObject
/// 弹性IP ID
 @property (strong,nonatomic,nonnull)  NSArray<NSString*>*  elasticIpIds;
/// 请求ID
 @property (strong,nonatomic,nonnull)  NSString*  requestId;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithElasticIpIds:(NSArray<NSString*>*) elasticIpIds

    requestId:(NSString*)requestId;
@end

@interface VpcModifyVpcPeeringRequest:JDCloudRequest

/// VpcPeering的名字,不为空。名称取值范围：1-32个中文、英文大小写的字母、数字和下划线分隔符
@property (strong,nonatomic,nonnull)  NSString*  vpcPeeringName;
/// VpcPeering 描述，取值范围：0-256个中文、英文大小写的字母、数字和下划线分隔符
@property (strong,nonatomic,nonnull)  NSString*  descriptionValue;
/// vpcPeeringId ID
@property (strong,nonatomic,nonnull)  NSString*  vpcPeeringId;
-(id) initWithRegion:(NSString *)regionId
vpcPeeringName:(NSString*)vpcPeeringName
descriptionValue:(NSString*)descriptionValue
vpcPeeringId:(NSString*)vpcPeeringId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
vpcPeeringName:(NSString*)vpcPeeringName
descriptionValue:(NSString*)descriptionValue
vpcPeeringId:(NSString*)vpcPeeringId;

@end

@interface VpcCreateVpcPeeringRequest:JDCloudRequest

/// VpcPeering的名字,不为空。名称取值范围：1-32个中文、英文大小写的字母、数字和下划线分隔符
@property (strong,nonatomic,nonnull)  NSString*  vpcPeeringName;
/// VpcPeering本端Vpc的Id
@property (strong,nonatomic,nonnull)  NSString*  vpcId;
/// VpcPeering对端Vpc的Id
@property (strong,nonatomic,nonnull)  NSString*  remoteVpcId;
/// VpcPeering 描述，取值范围：0-256个中文、英文大小写的字母、数字和下划线分隔符
@property (strong,nonatomic,nonnull)  NSString*  descriptionValue;
-(id) initWithRegion:(NSString *)regionId
vpcPeeringName:(NSString*)vpcPeeringName
vpcId:(NSString*)vpcId
remoteVpcId:(NSString*)remoteVpcId
descriptionValue:(NSString*)descriptionValue;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
vpcPeeringName:(NSString*)vpcPeeringName
vpcId:(NSString*)vpcId
remoteVpcId:(NSString*)remoteVpcId
descriptionValue:(NSString*)descriptionValue;

@end

@interface VpcDescribeVpcPeeringRequest:JDCloudRequest

/// vpcPeeringId ID
@property (strong,nonatomic,nonnull)  NSString*  vpcPeeringId;
-(id) initWithRegion:(NSString *)regionId
vpcPeeringId:(NSString*)vpcPeeringId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
vpcPeeringId:(NSString*)vpcPeeringId;

@end

@interface VpcDeleteVpcPeeringRequest:JDCloudRequest

/// vpcPeeringId ID
@property (strong,nonatomic,nonnull)  NSString*  vpcPeeringId;
-(id) initWithRegion:(NSString *)regionId
vpcPeeringId:(NSString*)vpcPeeringId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
vpcPeeringId:(NSString*)vpcPeeringId;

@end

@interface VpcDeleteVpcRequest:JDCloudRequest

/// Vpc ID
@property (strong,nonatomic,nonnull)  NSString*  vpcId;
-(id) initWithRegion:(NSString *)regionId
vpcId:(NSString*)vpcId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
vpcId:(NSString*)vpcId;

@end

@interface VpcDescribeVpcRequest:JDCloudRequest

/// Vpc ID
@property (strong,nonatomic,nonnull)  NSString*  vpcId;
-(id) initWithRegion:(NSString *)regionId
vpcId:(NSString*)vpcId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
vpcId:(NSString*)vpcId;

@end

@interface VpcCreateVpcRequest:JDCloudRequest

/// 私有网络名称,只允许输入中文、数字、大小写字母、英文下划线“_”及中划线“-”，不允许为空且不超过32字符。
@property (strong,nonatomic,nonnull)  NSString*  vpcName;
/// 如果为空，则不限制网段，如果不为空，10.0.0.0/8、172.16.0.0/12和192.168.0.0/16及它们包含的子网，且子网掩码长度为16-28之间
@property (strong,nonatomic,nonnull)  NSString*  addressPrefix;
/// vpc描述，允许输入UTF-8编码下的全部字符，不超过256字符。
@property (strong,nonatomic,nonnull)  NSString*  descriptionValue;
-(id) initWithRegion:(NSString *)regionId
vpcName:(NSString*)vpcName
addressPrefix:(NSString*)addressPrefix
descriptionValue:(NSString*)descriptionValue;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
vpcName:(NSString*)vpcName
addressPrefix:(NSString*)addressPrefix
descriptionValue:(NSString*)descriptionValue;

@end

@interface VpcModifyVpcRequest:JDCloudRequest

/// 私有网络名称,只允许输入中文、数字、大小写字母、英文下划线“_”及中划线“-”，不允许为空且不超过32字符。
@property (strong,nonatomic,nonnull)  NSString*  vpcName;
/// vpc描述，允许输入UTF-8编码下的全部字符，不超过256字符。
@property (strong,nonatomic,nonnull)  NSString*  descriptionValue;
/// Vpc ID
@property (strong,nonatomic,nonnull)  NSString*  vpcId;
-(id) initWithRegion:(NSString *)regionId
vpcName:(NSString*)vpcName
descriptionValue:(NSString*)descriptionValue
vpcId:(NSString*)vpcId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
vpcName:(NSString*)vpcName
descriptionValue:(NSString*)descriptionValue
vpcId:(NSString*)vpcId;

@end

@interface VpcCreateVpcResult : NSObject
/// 私有网络ID
 @property (strong,nonatomic,nonnull)  NSString*  vpcId;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithVpcId:(NSString*) vpcId;
@end

@interface VpcRemoveRouteTableRulesResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface VpcRemoveRouteTableRulesResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property VpcRemoveRouteTableRulesResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(VpcRemoveRouteTableRulesResult*) result;
@end

@interface VpcDescribeRouteTablesRequest:JDCloudRequest

/// 页码, 默认为1, 取值范围：[1,∞), 页码超过总页数时, 显示最后一页
@property (strong,nonatomic,nonnull)  NSNumber*  pageNumber;
/// 分页大小，默认为20，取值范围：[10,100]
@property (strong,nonatomic,nonnull)  NSNumber*  pageSize;
/// routeTableIds - 路由表ID列表，支持多个
   /// routeTableNames - 路由表名称列表，支持多个
   /// vpcId	- 路由表所属vpc Id，支持单个
   /// 
@property (strong,nonatomic,nonnull)  NSArray<Filter*>*  filters;
-(id) initWithRegion:(NSString *)regionId
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
filters:(NSArray<Filter*>*)filters;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
filters:(NSArray<Filter*>*)filters;

@end

@interface VpcAddRouteTableRulesRequest:JDCloudRequest

/// 安全组规则信息
@property (strong,nonatomic,nonnull)  NSArray<AddRouteTableRules*>*  routeTableRuleSpecs;
/// RouteTable ID
@property (strong,nonatomic,nonnull)  NSString*  routeTableId;
-(id) initWithRegion:(NSString *)regionId
routeTableRuleSpecs:(NSArray<AddRouteTableRules*>*)routeTableRuleSpecs
routeTableId:(NSString*)routeTableId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
routeTableRuleSpecs:(NSArray<AddRouteTableRules*>*)routeTableRuleSpecs
routeTableId:(NSString*)routeTableId;

@end

@interface VpcModifyRouteTableRulesResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface VpcDescribeRouteTablesResult : NSObject
/// RouteTables
 @property (strong,nonatomic,nonnull)  NSArray<RouteTable*>*  routeTables;
/// 总数量
 @property (strong,nonatomic,nonnull)  NSNumber*  totalCount;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithRouteTables:(NSArray<RouteTable*>*) routeTables

    totalCount:(NSNumber*)totalCount;
@end

@interface VpcDescribeRouteTableResult : NSObject
/// 路由表资源信息
 @property (strong,nonatomic,nonnull)  RouteTable*  routeTable;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithRouteTable:(RouteTable*) routeTable;
@end

@interface VpcAssociateRouteTableResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface VpcModifyRouteTableRulesResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property VpcModifyRouteTableRulesResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(VpcModifyRouteTableRulesResult*) result;
@end

@interface VpcModifyRouteTableResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface VpcModifyRouteTableRulesRequest:JDCloudRequest

/// 路由表规则信息
@property (strong,nonatomic,nonnull)  NSArray<ModifyRouteTableRules*>*  modifyRouteTableRuleSpecs;
/// RouteTable ID
@property (strong,nonatomic,nonnull)  NSString*  routeTableId;
-(id) initWithRegion:(NSString *)regionId
modifyRouteTableRuleSpecs:(NSArray<ModifyRouteTableRules*>*)modifyRouteTableRuleSpecs
routeTableId:(NSString*)routeTableId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
modifyRouteTableRuleSpecs:(NSArray<ModifyRouteTableRules*>*)modifyRouteTableRuleSpecs
routeTableId:(NSString*)routeTableId;

@end

@interface VpcAddRouteTableRulesResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface VpcDisassociateRouteTableResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface VpcDescribeRouteTableResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property VpcDescribeRouteTableResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(VpcDescribeRouteTableResult*) result;
@end

@interface VpcAssociateRouteTableResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property VpcAssociateRouteTableResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(VpcAssociateRouteTableResult*) result;
@end

@interface VpcDescribeRouteTablesResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property VpcDescribeRouteTablesResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(VpcDescribeRouteTablesResult*) result;
@end

@interface VpcModifyRouteTableResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property VpcModifyRouteTableResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(VpcModifyRouteTableResult*) result;
@end

@interface VpcCreateRouteTableResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property VpcCreateRouteTableResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(VpcCreateRouteTableResult*) result;
@end

@interface VpcDisassociateRouteTableResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property VpcDisassociateRouteTableResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(VpcDisassociateRouteTableResult*) result;
@end

@interface VpcDeleteRouteTableResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface VpcDeleteRouteTableResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property VpcDeleteRouteTableResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(VpcDeleteRouteTableResult*) result;
@end

@interface VpcAddRouteTableRulesResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property VpcAddRouteTableRulesResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(VpcAddRouteTableRulesResult*) result;
@end

@interface VpcDescribeQuotaResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property VpcDescribeQuotaResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(VpcDescribeQuotaResult*) result;
@end

@interface VpcUnassignSecondaryIpsResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface VpcDescribeNetworkInterfacesResult : NSObject
/// NetworkInterfaces
 @property (strong,nonatomic,nonnull)  NSArray<NetworkInterface*>*  networkInterfaces;
/// 总数量
 @property (strong,nonatomic,nonnull)  NSNumber*  totalCount;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithNetworkInterfaces:(NSArray<NetworkInterface*>*) networkInterfaces

    totalCount:(NSNumber*)totalCount;
@end

@interface VpcModifyNetworkInterfaceResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface VpcModifyNetworkInterfaceResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property VpcModifyNetworkInterfaceResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(VpcModifyNetworkInterfaceResult*) result;
@end

@interface VpcDeleteNetworkInterfaceResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface VpcDeleteNetworkInterfaceResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property VpcDeleteNetworkInterfaceResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(VpcDeleteNetworkInterfaceResult*) result;
@end

@interface VpcDescribeNetworkInterfaceResult : NSObject
/// networkInterface资源信息
 @property (strong,nonatomic,nonnull)  NetworkInterface*  networkInterface;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithNetworkInterface:(NetworkInterface*) networkInterface;
@end

@interface VpcDescribeNetworkInterfaceResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property VpcDescribeNetworkInterfaceResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(VpcDescribeNetworkInterfaceResult*) result;
@end

@interface VpcAssociateElasticIpResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface VpcAssociateElasticIpResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property VpcAssociateElasticIpResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(VpcAssociateElasticIpResult*) result;
@end

@interface VpcAssignSecondaryIpsResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface VpcAssignSecondaryIpsResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property VpcAssignSecondaryIpsResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(VpcAssignSecondaryIpsResult*) result;
@end

@interface VpcUnassignSecondaryIpsResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property VpcUnassignSecondaryIpsResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(VpcUnassignSecondaryIpsResult*) result;
@end

@interface VpcDescribeNetworkInterfacesResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property VpcDescribeNetworkInterfacesResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(VpcDescribeNetworkInterfacesResult*) result;
@end

@interface VpcCreateNetworkInterfaceResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property VpcCreateNetworkInterfaceResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(VpcCreateNetworkInterfaceResult*) result;
@end

@interface VpcDisassociateElasticIpResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface VpcDescribeNetworkInterfacesRequest:JDCloudRequest

/// 页码, 默认为1, 取值范围：[1,∞), 页码超过总页数时, 显示最后一页
@property (strong,nonatomic,nonnull)  NSNumber*  pageNumber;
/// 分页大小，默认为20，取值范围：[10,100]
@property (strong,nonatomic,nonnull)  NSNumber*  pageSize;
/// networkInterfaceIds - 弹性网卡ID列表，支持多个
   /// networkInterfaceNames - 弹性网卡名称列表，支持多个
   /// vpcId - 弹性网卡所属vpc Id，支持单个
   /// subnetId	- 弹性网卡所属子网Id，支持单个
   /// role - 网卡角色，取值范围：Primary（主网卡）、Secondary（辅助网卡），支持单个
   /// 
@property (strong,nonatomic,nonnull)  NSArray<Filter*>*  filters;
-(id) initWithRegion:(NSString *)regionId
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
filters:(NSArray<Filter*>*)filters;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
filters:(NSArray<Filter*>*)filters;

@end

@interface VpcDisassociateElasticIpResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property VpcDisassociateElasticIpResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(VpcDisassociateElasticIpResult*) result;
@end

@interface VpcDeleteSubnetResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface VpcDescribeSubnetsResult : NSObject
/// Subnets
 @property (strong,nonatomic,nonnull)  NSArray<Subnet*>*  subnets;
/// 总数量
 @property (strong,nonatomic,nonnull)  NSNumber*  totalCount;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithSubnets:(NSArray<Subnet*>*) subnets

    totalCount:(NSNumber*)totalCount;
@end

@interface VpcDescribeSubnetsResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property VpcDescribeSubnetsResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(VpcDescribeSubnetsResult*) result;
@end

@interface VpcDescribeSubnetResult : NSObject
/// 子网资源信息
 @property (strong,nonatomic,nonnull)  Subnet*  subnet;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithSubnet:(Subnet*) subnet;
@end

@interface VpcDescribeSubnetResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property VpcDescribeSubnetResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(VpcDescribeSubnetResult*) result;
@end

@interface VpcDeleteSubnetResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property VpcDeleteSubnetResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(VpcDeleteSubnetResult*) result;
@end

@interface VpcDescribeSubnetsRequest:JDCloudRequest

/// 页码, 默认为1, 取值范围：[1,∞), 页码超过总页数时, 显示最后一页
@property (strong,nonatomic,nonnull)  NSNumber*  pageNumber;
/// 分页大小，默认为20，取值范围：[10,100]
@property (strong,nonatomic,nonnull)  NSNumber*  pageSize;
/// subnetIds - subnet ID列表，支持多个
   /// subnetNames - subnet名称列表，支持多个
   /// routeTableId	- 子网关联路由表Id，支持单个
   /// aclId - 子网关联acl Id，支持单个
   /// vpcId - 子网所属VPC Id，支持单个
   /// 
@property (strong,nonatomic,nonnull)  NSArray<Filter*>*  filters;
-(id) initWithRegion:(NSString *)regionId
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
filters:(NSArray<Filter*>*)filters;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
filters:(NSArray<Filter*>*)filters;

@end

@interface VpcModifySubnetResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface VpcCreateSubnetResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property VpcCreateSubnetResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(VpcCreateSubnetResult*) result;
@end

@interface VpcModifySubnetResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property VpcModifySubnetResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(VpcModifySubnetResult*) result;
@end

@interface VpcDescribeNetworkSecurityGroupsResult : NSObject
/// NetworkSecurityGroups
 @property (strong,nonatomic,nonnull)  NSArray<NetworkSecurityGroup*>*  networkSecurityGroups;
/// 总数量
 @property (strong,nonatomic,nonnull)  NSNumber*  totalCount;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithNetworkSecurityGroups:(NSArray<NetworkSecurityGroup*>*) networkSecurityGroups

    totalCount:(NSNumber*)totalCount;
@end

@interface VpcDescribeNetworkSecurityGroupResult : NSObject
/// 安全组资源信息
 @property (strong,nonatomic,nonnull)  NetworkSecurityGroup*  networkSecurityGroup;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithNetworkSecurityGroup:(NetworkSecurityGroup*) networkSecurityGroup;
@end

@interface VpcAddNetworkSecurityGroupRulesResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface VpcAddNetworkSecurityGroupRulesResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property VpcAddNetworkSecurityGroupRulesResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(VpcAddNetworkSecurityGroupRulesResult*) result;
@end

@interface VpcDescribeNetworkSecurityGroupsResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property VpcDescribeNetworkSecurityGroupsResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(VpcDescribeNetworkSecurityGroupsResult*) result;
@end

@interface VpcModifyNetworkSecurityGroupRulesResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface VpcModifyNetworkSecurityGroupRulesResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property VpcModifyNetworkSecurityGroupRulesResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(VpcModifyNetworkSecurityGroupRulesResult*) result;
@end

@interface VpcCreateNetworkSecurityGroupResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property VpcCreateNetworkSecurityGroupResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(VpcCreateNetworkSecurityGroupResult*) result;
@end

@interface VpcAddNetworkSecurityGroupRulesRequest:JDCloudRequest

/// 安全组规则信息
@property (strong,nonatomic,nonnull)  NSArray<AddSecurityGroupRules*>*  networkSecurityGroupRuleSpecs;
/// NetworkSecurityGroup ID
@property (strong,nonatomic,nonnull)  NSString*  networkSecurityGroupId;
-(id) initWithRegion:(NSString *)regionId
networkSecurityGroupRuleSpecs:(NSArray<AddSecurityGroupRules*>*)networkSecurityGroupRuleSpecs
networkSecurityGroupId:(NSString*)networkSecurityGroupId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
networkSecurityGroupRuleSpecs:(NSArray<AddSecurityGroupRules*>*)networkSecurityGroupRuleSpecs
networkSecurityGroupId:(NSString*)networkSecurityGroupId;

@end

@interface VpcModifyNetworkSecurityGroupRulesRequest:JDCloudRequest

/// 安全组规则信息
@property (strong,nonatomic,nonnull)  NSArray<ModifySecurityGroupRules*>*  modifySecurityGroupRuleSpecs;
/// NetworkSecurityGroup ID
@property (strong,nonatomic,nonnull)  NSString*  networkSecurityGroupId;
-(id) initWithRegion:(NSString *)regionId
modifySecurityGroupRuleSpecs:(NSArray<ModifySecurityGroupRules*>*)modifySecurityGroupRuleSpecs
networkSecurityGroupId:(NSString*)networkSecurityGroupId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
modifySecurityGroupRuleSpecs:(NSArray<ModifySecurityGroupRules*>*)modifySecurityGroupRuleSpecs
networkSecurityGroupId:(NSString*)networkSecurityGroupId;

@end

@interface VpcRemoveNetworkSecurityGroupRulesResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface VpcRemoveNetworkSecurityGroupRulesResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property VpcRemoveNetworkSecurityGroupRulesResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(VpcRemoveNetworkSecurityGroupRulesResult*) result;
@end

@interface VpcDescribeNetworkSecurityGroupsRequest:JDCloudRequest

/// 页码, 默认为1, 取值范围：[1,∞), 页码超过总页数时, 显示最后一页
@property (strong,nonatomic,nonnull)  NSNumber*  pageNumber;
/// 分页大小，默认为20，取值范围：[10,100]
@property (strong,nonatomic,nonnull)  NSNumber*  pageSize;
/// networkSecurityGroupIds - 安全组ID列表，支持多个
   /// networkSecurityGroupNames - 安全组名称列表，支持多个
   /// vpcId	- 安全组所属vpc Id，支持单个
   /// 
@property (strong,nonatomic,nonnull)  NSArray<Filter*>*  filters;
-(id) initWithRegion:(NSString *)regionId
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
filters:(NSArray<Filter*>*)filters;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
filters:(NSArray<Filter*>*)filters;

@end

@interface VpcDeleteNetworkSecurityGroupResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface VpcModifyNetworkSecurityGroupResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface VpcDeleteNetworkSecurityGroupResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property VpcDeleteNetworkSecurityGroupResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(VpcDeleteNetworkSecurityGroupResult*) result;
@end

@interface VpcModifyNetworkSecurityGroupResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property VpcModifyNetworkSecurityGroupResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(VpcModifyNetworkSecurityGroupResult*) result;
@end

@interface VpcDescribeNetworkSecurityGroupResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property VpcDescribeNetworkSecurityGroupResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(VpcDescribeNetworkSecurityGroupResult*) result;
@end

@interface VpcAddNetworkAclRulesResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface VpcModifyNetworkAclRulesRequest:JDCloudRequest

/// networkAcl规则列表
@property (strong,nonatomic,nonnull)  NSArray<ModifyNetworkAclRuleSpec*>*  modifyNetworkAclRuleSpecs;
/// networkAclId ID
@property (strong,nonatomic,nonnull)  NSString*  networkAclId;
-(id) initWithRegion:(NSString *)regionId
modifyNetworkAclRuleSpecs:(NSArray<ModifyNetworkAclRuleSpec*>*)modifyNetworkAclRuleSpecs
networkAclId:(NSString*)networkAclId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
modifyNetworkAclRuleSpecs:(NSArray<ModifyNetworkAclRuleSpec*>*)modifyNetworkAclRuleSpecs
networkAclId:(NSString*)networkAclId;

@end

@interface VpcDescribeNetworkAclResult : NSObject
/// networkAcl资源信息
 @property (strong,nonatomic,nonnull)  NetworkAcl*  networkAcl;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithNetworkAcl:(NetworkAcl*) networkAcl;
@end

@interface VpcDeleteNetworkAclResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface VpcDeleteNetworkAclResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property VpcDeleteNetworkAclResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(VpcDeleteNetworkAclResult*) result;
@end

@interface VpcDescribeNetworkAclsResult : NSObject
/// NetworkAcls
 @property (strong,nonatomic,nonnull)  NSArray<NetworkAcl*>*  networkAcls;
/// 总数量
 @property (strong,nonatomic,nonnull)  NSNumber*  totalCount;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithNetworkAcls:(NSArray<NetworkAcl*>*) networkAcls

    totalCount:(NSNumber*)totalCount;
@end

@interface VpcDescribeNetworkAclsResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property VpcDescribeNetworkAclsResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(VpcDescribeNetworkAclsResult*) result;
@end

@interface VpcModifyNetworkAclRulesResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface VpcDescribeNetworkAclResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property VpcDescribeNetworkAclResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(VpcDescribeNetworkAclResult*) result;
@end

@interface VpcAssociateNetworkAclResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface VpcAssociateNetworkAclResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property VpcAssociateNetworkAclResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(VpcAssociateNetworkAclResult*) result;
@end

@interface VpcModifyNetworkAclResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface VpcAddNetworkAclRulesResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property VpcAddNetworkAclRulesResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(VpcAddNetworkAclRulesResult*) result;
@end

@interface VpcCreateNetworkAclResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property VpcCreateNetworkAclResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(VpcCreateNetworkAclResult*) result;
@end

@interface VpcDisassociateNetworkAclResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface VpcDisassociateNetworkAclResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property VpcDisassociateNetworkAclResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(VpcDisassociateNetworkAclResult*) result;
@end

@interface VpcModifyNetworkAclResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property VpcModifyNetworkAclResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(VpcModifyNetworkAclResult*) result;
@end

@interface VpcRemoveNetworkAclRulesResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface VpcModifyNetworkAclRulesResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property VpcModifyNetworkAclRulesResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(VpcModifyNetworkAclRulesResult*) result;
@end

@interface VpcRemoveNetworkAclRulesResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property VpcRemoveNetworkAclRulesResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(VpcRemoveNetworkAclRulesResult*) result;
@end

@interface VpcDescribeNetworkAclsRequest:JDCloudRequest

/// 页码, 默认为1, 取值范围：[1,∞), 页码超过总页数时, 显示最后一页
@property (strong,nonatomic,nonnull)  NSNumber*  pageNumber;
/// 分页大小，默认为20，取值范围：[10,100]
@property (strong,nonatomic,nonnull)  NSNumber*  pageSize;
/// networkAclIds - 弹性网卡ID列表，支持多个
   /// networkAclNames - 弹性网卡名称列表，支持多个
   /// vpcId - 弹性网卡所属vpc Id，支持单个
   /// 
@property (strong,nonatomic,nonnull)  NSArray<Filter*>*  filters;
-(id) initWithRegion:(NSString *)regionId
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
filters:(NSArray<Filter*>*)filters;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
filters:(NSArray<Filter*>*)filters;

@end

@interface VpcAddNetworkAclRulesRequest:JDCloudRequest

/// networkAcl规则列表
@property (strong,nonatomic,nonnull)  NSArray<AddNetworkAclRuleSpec*>*  networkAclRuleSpecs;
/// networkAclId ID
@property (strong,nonatomic,nonnull)  NSString*  networkAclId;
-(id) initWithRegion:(NSString *)regionId
networkAclRuleSpecs:(NSArray<AddNetworkAclRuleSpec*>*)networkAclRuleSpecs
networkAclId:(NSString*)networkAclId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
networkAclRuleSpecs:(NSArray<AddNetworkAclRuleSpec*>*)networkAclRuleSpecs
networkAclId:(NSString*)networkAclId;

@end

@interface VpcModifyElasticIpResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface VpcDescribeElasticIpsResult : NSObject
/// ElasticIps
 @property (strong,nonatomic,nonnull)  NSArray<ElasticIp*>*  elasticIps;
/// 总数量
 @property (strong,nonatomic,nonnull)  NSNumber*  totalCount;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithElasticIps:(NSArray<ElasticIp*>*) elasticIps

    totalCount:(NSNumber*)totalCount;
@end

@interface VpcDeleteElasticIpResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface VpcDeleteElasticIpResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property VpcDeleteElasticIpResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(VpcDeleteElasticIpResult*) result;
@end

@interface VpcDescribeElasticIpResult : NSObject
/// elasticIp资源信息
 @property (strong,nonatomic,nonnull)  ElasticIp*  elasticIp;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithElasticIp:(ElasticIp*) elasticIp;
@end

@interface VpcDescribeElasticIpResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property VpcDescribeElasticIpResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(VpcDescribeElasticIpResult*) result;
@end

@interface VpcDescribeElasticIpsRequest:JDCloudRequest

/// 页码, 默认为1, 取值范围：[1,∞), 页码超过总页数时, 显示最后一页
@property (strong,nonatomic,nonnull)  NSNumber*  pageNumber;
/// 分页大小，默认为20，取值范围：[10,100]
@property (strong,nonatomic,nonnull)  NSNumber*  pageSize;
/// elasticIpIds - elasticip id数组条件，支持多个
   /// elasticIpAddress - eip的IP地址，支持单个
   /// chargeStatus	- eip的费用支付状态,normal(正常状态) or overdue(预付费已到期) or arrear(欠费状态)，支持单个
   /// 
@property (strong,nonatomic,nonnull)  NSArray<Filter*>*  filters;
-(id) initWithRegion:(NSString *)regionId
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
filters:(NSArray<Filter*>*)filters;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
filters:(NSArray<Filter*>*)filters;

@end

@interface VpcDescribeElasticIpsResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property VpcDescribeElasticIpsResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(VpcDescribeElasticIpsResult*) result;
@end

@interface VpcModifyElasticIpResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property VpcModifyElasticIpResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(VpcModifyElasticIpResult*) result;
@end

@interface VpcCreateElasticIpsResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property VpcCreateElasticIpsResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(VpcCreateElasticIpsResult*) result;
@end

@interface VpcCreateElasticIpsRequest:JDCloudRequest

/// 购买弹性ip数量；取值范围：[1,100]
@property (strong,nonatomic,nonnull)  NSNumber*  maxCount;
/// 指定弹性ip地址进行创建，当申请创建多个弹性ip时，必须为空
@property (strong,nonatomic,nonnull)  NSString*  elasticIpAddress;
/// 弹性ip规格
@property (strong,nonatomic,nonnull)  ElasticIpSpec*  elasticIpSpec;
-(id) initWithRegion:(NSString *)regionId
maxCount:(NSNumber*)maxCount
elasticIpAddress:(NSString*)elasticIpAddress
elasticIpSpec:(ElasticIpSpec*)elasticIpSpec;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
maxCount:(NSNumber*)maxCount
elasticIpAddress:(NSString*)elasticIpAddress
elasticIpSpec:(ElasticIpSpec*)elasticIpSpec;

@end

@interface VpcCreateVpcPeeringResult : NSObject
/// VpcPeering资源信息
 @property (strong,nonatomic,nonnull)  VpcPeering*  vpcPeering;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithVpcPeering:(VpcPeering*) vpcPeering;
@end

@interface VpcDescribeVpcPeeringResult : NSObject
/// VpcPeering资源信息
 @property (strong,nonatomic,nonnull)  VpcPeering*  vpcPeering;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithVpcPeering:(VpcPeering*) vpcPeering;
@end

@interface VpcDescribeVpcPeeringResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property VpcDescribeVpcPeeringResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(VpcDescribeVpcPeeringResult*) result;
@end

@interface VpcModifyVpcPeeringResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface VpcDescribeVpcPeeringsRequest:JDCloudRequest

/// 页码, 默认为1, 取值范围：[1,∞), 页码超过总页数时, 显示最后一页
@property (strong,nonatomic,nonnull)  NSNumber*  pageNumber;
/// 分页大小，默认为20，取值范围：[10,100]
@property (strong,nonatomic,nonnull)  NSNumber*  pageSize;
/// vpcPeeringIds - vpcPeering ID，支持多个
   /// vpcPeeringNames - vpcPeering名称列表，支持多个
   /// vpcId	- vpcPeering本端Vpc Id，支持单个
   /// remoteVpcId - vpcPeering对端Vpc Id，支持单个
   /// 
@property (strong,nonatomic,nonnull)  NSArray<Filter*>*  filters;
-(id) initWithRegion:(NSString *)regionId
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
filters:(NSArray<Filter*>*)filters;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
filters:(NSArray<Filter*>*)filters;

@end

@interface VpcCreateVpcPeeringResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property VpcCreateVpcPeeringResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(VpcCreateVpcPeeringResult*) result;
@end

@interface VpcDeleteVpcPeeringResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface VpcDeleteVpcPeeringResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property VpcDeleteVpcPeeringResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(VpcDeleteVpcPeeringResult*) result;
@end

@interface VpcModifyVpcPeeringResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property VpcModifyVpcPeeringResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(VpcModifyVpcPeeringResult*) result;
@end

@interface VpcDescribeVpcPeeringsResult : NSObject
/// VpcPeerings
 @property (strong,nonatomic,nonnull)  NSArray<VpcPeering*>*  vpcPeerings;
/// 总数量
 @property (strong,nonatomic,nonnull)  NSNumber*  totalCount;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithVpcPeerings:(NSArray<VpcPeering*>*) vpcPeerings

    totalCount:(NSNumber*)totalCount;
@end

@interface VpcDescribeVpcPeeringsResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property VpcDescribeVpcPeeringsResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(VpcDescribeVpcPeeringsResult*) result;
@end

@interface VpcDescribeVpcsRequest:JDCloudRequest

/// 页码, 默认为1, 取值范围：[1,∞), 页码超过总页数时, 显示最后一页
@property (strong,nonatomic,nonnull)  NSNumber*  pageNumber;
/// 分页大小，默认为20，取值范围：[10,100]
@property (strong,nonatomic,nonnull)  NSNumber*  pageSize;
/// vpcIds - vpc ID列表，支持多个
   /// vpcNames - vpc名称列表,支持多个
   /// 
@property (strong,nonatomic,nonnull)  NSArray<Filter*>*  filters;
-(id) initWithRegion:(NSString *)regionId
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
filters:(NSArray<Filter*>*)filters;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
filters:(NSArray<Filter*>*)filters;

@end

@interface VpcDescribeVpcsResult : NSObject
/// Vpcs
 @property (strong,nonatomic,nonnull)  NSArray<Vpc*>*  vpcs;
/// 总数量
 @property (strong,nonatomic,nonnull)  NSNumber*  totalCount;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithVpcs:(NSArray<Vpc*>*) vpcs

    totalCount:(NSNumber*)totalCount;
@end

@interface VpcDescribeVpcResult : NSObject
/// Vpc资源信息
 @property (strong,nonatomic,nonnull)  Vpc*  vpc;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithVpc:(Vpc*) vpc;
@end

@interface VpcDescribeVpcResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property VpcDescribeVpcResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(VpcDescribeVpcResult*) result;
@end

@interface VpcDeleteVpcResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface VpcDeleteVpcResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property VpcDeleteVpcResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(VpcDeleteVpcResult*) result;
@end

@interface VpcModifyVpcResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface VpcCreateVpcResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property VpcCreateVpcResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(VpcCreateVpcResult*) result;
@end

@interface VpcModifyVpcResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property VpcModifyVpcResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(VpcModifyVpcResult*) result;
@end

@interface VpcDescribeVpcsResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property VpcDescribeVpcsResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(VpcDescribeVpcsResult*) result;
@end

#endif /* VpcApiModel_h */
